package com.fengwk.support.websocket;

import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.springframework.web.socket.TextMessage;
import org.springframework.web.socket.WebSocketSession;

public interface WebSocketSessionManager {

	/**
	 * 从 http 协议升级到 websocket 第一步,创建 websocket session
	 * @param request http规范
	 * @param attributes session中的属性
	 * @return 返回true创建完成,返回false终止连接创建
	 */
	boolean createSession(HttpServletRequest request, Map<String, Object> attributes);
	
	/**
	 * 该方法在 websocket 连接建立后调用,用于存储会话
	 * @param session
	 */
	void afterSessionCreate(WebSocketSession session);
	
	/**
	 * 该方法在 websocket 连接关闭后调用,用于销毁会话
	 * @param session
	 */
	void afterSessionDestroy(WebSocketSession session);
	
	/**
	 * 控制中心
	 * @param session
	 * @param message
	 */
	void handler(WebSocketSession session, TextMessage message);
	
}
